package com.bear.bearaiagent.demo.invoke;

import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import java.util.HashMap;
import java.util.Map;

//public class HttpAiInvoke {
//    public static void main(String[] args) {
//        // ✅ 替换为您自己的 DashScope API Key
//        String apiKey = TestApiKey.API_KEY; // 从 https://dashscope.console.aliyun.com/apiKey 获取
//
//        // ✅ 模型名称，例如：qwen-turbo, qwen-plus, qwen-max 等
//        String model = "qwen-turbo";
//
//        // ✅ 请求 URL（直接调用模型的 endpoint）
//        String url = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation";
//
//        // ✅ 构造请求体
//        String requestBody = JSONUtil.toJsonStr(Map.of(
//                "model", model,
//                "input", Map.of(
//                        "prompt", "你是谁？"
//                ),
//                "parameters", new HashMap<>() // 可选参数，如 temperature、top_p 等
//        ));
//
//        // ✅ 发送 POST 请求
//        HttpResponse response = HttpRequest.post(url)
//                .header("Authorization", "Bearer " + apiKey)
//                .header("Content-Type", "application/json")
////                .header("X-DashScope-SSE", "enable") // 如需流式可加，单次调用可不加
//                .body(requestBody)
//                .timeout(30000) // 设置超时时间，避免长时间等待
//                .execute();
//
//        // ✅ 打印响应
//        System.out.println("Status Code: " + response.getStatus());
//        System.out.println("Response Body: " + response.body());
//
//        // ✅ 可选：解析 JSON 响应，提取回答内容
//        // 您可以使用 JSONUtil.parseObj(response.body()) 来解析返回结果
//    }
//}





public class HttpAiInvoke {
    public static void main(String[] args) {
        // 替换为你的实际 API 密钥
        String url = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation";

        // 设置请求头
        Map<String, String> headers = new HashMap<>();
        headers.put("Authorization", "Bearer " + TestApiKey.API_KEY);
        headers.put("Content-Type", "application/json");

        // 设置请求体
        JSONObject requestBody = new JSONObject();
        requestBody.put("model", "qwen-plus");

        JSONObject input = new JSONObject();
        JSONObject[] messages = new JSONObject[2];

        JSONObject systemMessage = new JSONObject();
        systemMessage.put("role", "system");
        systemMessage.put("content", "You are a helpful assistant.");
        messages[0] = systemMessage;

        JSONObject userMessage = new JSONObject();
        userMessage.put("role", "user");
        userMessage.put("content", "你是谁？");
        messages[1] = userMessage;

        input.put("messages", messages);
        requestBody.put("input", input);

        JSONObject parameters = new JSONObject();
        parameters.put("result_format", "message");
        requestBody.put("parameters", parameters);

        // 发送请求
        HttpResponse response = HttpRequest.post(url)
                .addHeaders(headers)
                .body(requestBody.toString())
                .execute();

        // 处理响应
        if (response.isOk()) {
            System.out.println("请求成功，响应内容：");
            System.out.println(response.body());
        } else {
            System.out.println("请求失败，状态码：" + response.getStatus());
            System.out.println("响应内容：" + response.body());
        }
    }
}
